home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / datasheets and manuals / Hardware / WHT / scsi / dsr_sources_2_2001 / protect < prev    next >
Text File  |  2006-10-19  |  2KB  |  80 lines

  1. * GPL Routine >22 - Modify file protection
  2. *
  3. * This procedure will either set or reset the protection on
  4. * a file depending on the value stored at >834d
  5. *
  6. * Inputs:
  7. *    >834C - SCSI device number and buffer bit
  8. *    >834D - 0=unprotect, 1=protect
  9. *    >834E - Pointer to file name
  10. *
  11. * Outputs:
  12. *    >8350 - Error status
  13. *               0 = No error
  14. *           non 0 = Error
  15. *
  16.  
  17. GPL22
  18.        ANDI R12,>FF00
  19.        AI   R12,24
  20.        BL   @SAVPAD
  21.        BL   @MAKEFN
  22.        BL   @GETFDR
  23.        BL   @RESPAD
  24.        LDCR @ZERO,4
  25.        CI   R5,0
  26.        JNE  GPL22A
  27.  
  28. G22ERR LDCR @ZERO,4
  29.        MOVB @B01,@>8350      Set an error status
  30.        B    @DSRRT
  31.  
  32. GPL22A MOVB @>834D,R1        Check protection code
  33.        JEQ  GPL22B
  34.  
  35. * The protection code was not zero so we have to protect the file.
  36. * If the file is already protected, we just return.  Otherwise,
  37. * we set the bit in the VIB and write it back out
  38.  
  39.        LDCR @ZERO,4
  40.        MOV  @12(R5),R1       Get file flags
  41.        COC  @PROBIT,R1
  42.        JEQ  G22RT
  43.  
  44.        SOC  @PROBIT,@12(R5)  Set protection bit
  45.        JMP  GPL22C
  46.  
  47. * The protection code was zero so we have to unprotect the file.
  48. * If the file is already unprotected, we just return.  Otherwise,
  49. * we clear the bit in the VIB and write it back out
  50.  
  51. GPL22B LDCR @ZERO,4
  52.        MOV  @12(R5),R1       Get file flags
  53.        CZC  @PROBIT,R1
  54.        JEQ  G22RT
  55.  
  56.        SZC  @PROBIT,@12(R5)  Clear protection bit
  57.  
  58. GPL22C
  59.  
  60. * Now we write the FDR back out to disk.
  61. *
  62.        LDCR @B04,4
  63.        MOV  @SAVEAU,R7
  64.        MOV  R6,R3
  65.        SRL  R3,8
  66.        SLA  R3,1
  67.        MPY  @SAUTBL(R3),R7
  68.        SRL  R8,1
  69.        SRL  R7,1
  70.        JNC  GPL22D
  71.        AI   R8,>8000
  72. GPL22D
  73.        LDCR @ZERO,4
  74.        BLWP @BANKIT
  75.        DATA SCSIWT
  76.        JNE  G22ERR
  77.  
  78. G22RT  MOVB @ZERO,@>8350     Set success
  79.        B    @DSRRT
  80.